1. Field of the Invention
The present invention relates generally to computer graphics programs, and in particular, to a method, apparatus, and article of manufacture for using object manipulators in a computer graphics program.
2. Description of the Related Art
The use of graphics programs such as Computer Aided Design (CAD) application programs is well known in the art. CAD drawings often have many components (referred to as objects or graphics objects) that together define the drawing. In most computer applications that create and modify graphic objects, an object manipulator is a standard mechanism used to modify the geometric properties of the graphic object. However, the nature and use of object manipulators in the prior art is limited to that of modifying an object's geometric properties. Such limitations are undesirable and reduce the flexibility and usability of computer graphics applications. These problems may be better understood by describing prior art drawing programs, object properties, object manipulators, and property modification techniques.
Drawing Programs
CAD applications are often used to create drawings used in the architectural, engineering, and construction (AEC) industry. The drawings are often defined by a collection of one or more graphical elements (referred to as objects), such as lines, circles, polylines, text, or dimensions. For example, a collection of various lines may make up a door or window object. CAD programs may treat each object as a single element for creation, manipulation, and modification. Some CAD programs may also provide objects that are special entities with predefined behaviors and display characteristics. Thus, the objects in a CAD program may be object-oriented objects having various methods/behaviors and properties (including display characteristics).
Information relating to an object may be entered and defined in one or more properties of the object. For example, users may have the capability to enter information about the style, dimensions, location, schedule data, display information and/or other important characteristics of an object.
Object Properties
To edit and maintain an object and/or properties of the object, various methodologies may be available. For example, a properties window may provide a common “one stop” location where a user can manage object properties without having to use individual typed commands. Such a properties window may list the current settings for all object properties, and allow the properties to be viewed alphabetically or by category. To change a property, the property may be selected from the list and a new value may be selected or entered.
Object Manipulators
As described above, an object manipulator is a prior art mechanism used to modify the geometric properties of a graphic object. Other names for object manipulators are handles, or grips. An object manipulator is typically implemented as a glyph or symbol, such as a small square, displayed at some geometrically meaningful point on the object to be manipulated.
FIG. 1 illustrates a prior art rectangle 100 that is selected for modification, with object manipulators 102 displayed as filled squares located at each vertex. Activating and dragging one of the object manipulators 102 modifies the position of the vertex, and thus the width and height properties of the rectangle.
The typical way to interact with an object manipulator 102 is to place an identifier (e.g., a cursor) controlled by a pointing device (e.g., a computer mouse) over the manipulator 102, activating the manipulator 102 by clicking a physical button on the pointing device, dragging the pointing device to change the position of the manipulator 102, and finally clicking the pointing device again to set the desired value of the object feature being manipulated. However, in the prior art, object manipulators 102 may only be used to alter the geometric properties (e.g., vertex position, shape, etc.) of an object by dragging the manipulator.
Buttons
To adjust object properties other than geometric properties, the prior art may rely on the use of buttons. As illustrated in FIG. 2, in standard computer user interfaces, a button 200 is a common control used to initiate an action to modify some aspect of the state of the interface. The button 200 displays text (e.g., “SAVE”) or icon graphics to provide information to the user as to the results of activating the button 200. The typical way to interact with a button 200 is to place an identifier (e.g., a cursor) controlled by a pointing device (e.g., a computer mouse) over the button 200, and activating the button 200 by clicking a physical button on the pointing device. Once activated, an action is performed or the state of the interface is modified.
Accordingly, what is needed is the capability to edit an object's properties (geometric and otherwise) in an intuitive, easy, and understandable manner.